---------------------------------------------===========================--------
------------------------------===+++*++*=--------=======================--------
--------------------------=====++*#######==---------====================--------
+++++++++===========----=+*+===+++**######**==-------===================--------
+++++++++++++++++**+=--=+**+++***#*********#*+=-=------==================------=
--------------+***+-==+++**++***####**********+++++++====================----=++
---:::::::::::-*++==+***+++************+******++++++++++++==============---=+++*
-----:::::::::-++++++##*****************++*****+==========================+++**#
------::--====++****%#**++++++***++***+*****###*+=====+================++++**###
---::----=+=++*****##*++++++++++++++++++******##*+===================+++**######
--=+=========+*#***##*++++++++++++**+*******#**##*====++=============++*#####%##
--==------===+##***##*++++++++++++************###*+--================++**#######
:-=::::::--===*##*****+++++++++++****##*#***+*#%##*+=-=------========++******###
::-::::::::-==**###***+++++++++++*******##***+***#%*+==--------------=+*******##
::::::::::::--=+*#%#*#####*****+++**###%###***+*#%%#+==--------------=+*******##
:::::::::::::---=#%%###*+++****++++*#####***+++*#%%##+==-------------=+*******##
::::::::::-::::::=#%#######****++++++++++====+++#####*==-------------=++*******#
::::::::::-::::::-#######**+++*++++++===========*####*+=-------------=++*******#
:::::::::--::::::-**#***++++++*++=+++++++=======#%#*#*==--------------++*******#
::-::::::--::-----**%**++++=++***+***+==+++++===#%%#*+==--------------++*******#
::-::::::--:::----+*%#**++++++*###*+++==+++++===*###*+==--------------++*******#
:--::::::--:::::::-*%%#**+++++***+++++++*+++====*#***=----------------++*******#
:--:::::::-::::::-=*#%%#**++********++++++++++=*#****=----------------++********
----::::::-:::::-===+%@%**++=+****++++++==++++*%#****+=---------------=+********
---:::::::-:::----::=#%%##*++++******++++++++*%%#*##**+=--------------=+********
+---::::::-:::::::::+#%%@@##****++++++++++****#%##%##*++=-------------=+********
#=--:-:::--:::::--==*#%%@@@%###*****+++******+*%#####**+==------------=+********
##---------::----==+*#%%%%%%%#####*********++++%%%###**+++=-----------=+********
##+-----------==++*###%%%%%%##*##********++++=+#@@@%###**++=--------=-=++*******
###=------=++##%%#####%%%###**+********++++++=+#@@@@@@%%%***=-------=-=++*******
#%#*==*%%##%%%%%############*++++++++++====+===#%@%%@@@@%%@@%%*+=+==-==++*******
##+#%%%%%#%%%%%#**#####**###*================+%#**####%%%@@@@@@@@@%#+=-+********
##%%@@%#+*%%%%%#*#%%%####*++*+==============+%@%**#*##%@@@@@@@@@@@@@%*=++*******
*#%@@@@@#*%@@@@%###%##%%@@#+=+=============*@@@@@@@%%@@@@@@@@@@@@@@@@@%#********
--=+*%@@@##@@@@@%%%%%%@@@@@*+%#+==========*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#*******
***#**%@@@#*%@@@@@@@@@@@@@@@@%#+========+#@@@++%@@@@@@@@@@@@@@@@@@@@@@@@@%******
@@@@@@@@@@@++%%%@@@@@@@@@@@@%+=========+%@@@*==%@@@@@@@@@@@@@@@@@@@@@@@@@@*+****
@@@@@@@@@@@%+++=*%%@@@@@@@@@#=========+%@@@*+**@@@@@@@@@@@@@@@@@@@@@@@@@@#==+***
@@@@@@@@@@@%++*==++*%@@@@@@#++=======+%@@@*=*+%@@@@@@@@@@@@@@@@@@@@@@@@%#*##****